﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data;
using MySql.Data.MySqlClient;

namespace GestionMedic
{
    public partial class gsb : Form
    {
        int compteur = 0;
        int compteur2 = 0;
        private static MySqlDataAdapter da;
        private static DataSet ds;
        private static DataTable dt;
        private static int id;

        private static string con = "server=172.17.100.40;user=userGsb;database=gsb_frais;port=3306;password=secret;";
        private static MySqlConnection cnx = new MySqlConnection(con);

        public gsb()
        {
            InitializeComponent();

            #region Allimente la cbFamille
            cbFamille.DataSource = Requetes.alimenterCB("famille");
            cbFamille.DisplayMember = "nom";
            #endregion
        }

        private void gsb_Load(object sender, EventArgs e)
        {
        }
        
        // Ajouter un medicament
        private void btnAjouter_Click_1(object sender, EventArgs e)
        {
            dateDepot.Format = DateTimePickerFormat.Custom;
            dateDepot.CustomFormat = "yyyy-MM-dd";

            int id = Requetes.chercherId(cbFamille.Text);
            try
            {
                Requetes.ajouter(tbDesi.Text, taCompo.Text, dateDepot.Text, taEffets.Text, taCI.Text, int.Parse(tbPrix.Text), id);
                MessageBox.Show("Médicament ajouté.");
            }
            catch (MySqlException ex)
            {
                MessageBox.Show("Erreur : " + ex.Message);
            }
        }

        // Alimentation de la combobox cbFamille à l'arrivée sur l'onglet Ajouter
        // Mise a zero des controles
        private void ongletAjouter_Enter(object sender, EventArgs e)
        {
            cbDesi.Text = "";
            taCompo.Text = "";
            dateDepot.Text = "";
            taEffets.Text = "";
            taCI.Text = "";
            tbPrix.Text = "";
        }

        // Mise a zero des controles
        // Alimentation de la combobox cbDesi à l'arrivée sur l'onglet Modifier
        private void ongletModifier_Enter_1(object sender, EventArgs e)
        {
            cbDesi.Text = "";
            taCompoModification.Text = "";
            tbDepotModification.Text = "";
            taEffetsModification.Text = "";
            taCIModification.Text = "";
            tbPrixModification.Text = "";

            try
            {
                cbDesi.DataSource = Requetes.alimenterCB("medicament");
                cbDesi.DisplayMember = "nom";
            }
            catch (MySqlException ex)
            {
                MessageBox.Show("Erreur : " + ex.ToString());
            }
            compteur++;
        }

        // Alimente le formulaire Modification lorsque l'on choisit un medicament
        private void cbDesi_SelectedValueChanged(object sender, EventArgs e)
        {
            if (compteur != 0)
            {
                taCompoModification.Text = Requetes.champs("compo", cbDesi.Text);
                tbDepotModification.Text = Requetes.champs("depot", cbDesi.Text);
                taEffetsModification.Text = Requetes.champs("effets", cbDesi.Text);
                taCIModification.Text = Requetes.champs("contreIndic", cbDesi.Text);
                tbPrixModification.Text = Requetes.champs("prix", cbDesi.Text);
            }
        }

        // Alimentation de la combobox cbDesiSupprimer
        // Desactivation de certains elements a l'arrivée sur l'onglet Supprimer
        private void ongletSupprimer_Enter_1(object sender, EventArgs e)
        {
            try
            {
                cbDesiSupprimer.DataSource = Requetes.alimenterCB("medicament");
                cbDesiSupprimer.DisplayMember = "nom";
            }
            catch (MySqlException ex)
            {
                MessageBox.Show("Erreur : " + ex.Message);
            }

            taCompoSupprimer.Text = "";
            tbDepotSupprimer.Text = "";
            taEffetsSupprimer.Text = "";
            taCISupprimer.Text = "";
            tbPrixSupprimer.Text = "";

            compteur2++;
        }

        // Alimente le formulaire Supprimer lorsque l'on choisit un medicament
        private void cbDesiSupprimer_SelectedValueChanged(object sender, EventArgs e)
        {
            if (compteur2 != 0)
            {
                taCompoSupprimer.Text = Requetes.champs("compo", cbDesiSupprimer.Text);
                tbDepotSupprimer.Text = Requetes.champs("depot", cbDesiSupprimer.Text);
                taEffetsSupprimer.Text = Requetes.champs("effets", cbDesiSupprimer.Text);
                taCISupprimer.Text = Requetes.champs("contreIndic", cbDesiSupprimer.Text);
                tbPrixSupprimer.Text = Requetes.champs("prix", cbDesiSupprimer.Text);
            }
        }

        // Modifier un medicament
        private void btnModifier_Click_1(object sender, EventArgs e)
        {
            try
            {
                Requetes.modifier(cbDesi.Text, taCompoModification.Text, tbDepotModification.Text, 
                                  taEffetsModification.Text, taCIModification.Text, int.Parse(tbPrixModification.Text));
                MessageBox.Show("Medicament Modifié");
            }
            catch (MySqlException ex)
            {
                MessageBox.Show("Erreur : " + ex.Message);
            }
        }

        // Supprimer un medicament
        private void btnSupprimer_Click_1(object sender, EventArgs e)
        {
            Requetes.supprimer(cbDesiSupprimer.Text);
            MessageBox.Show("Medicament supprimé");
        }
    }
}